The GNU LGPLv3 logo |
|
Author | Free Software Foundation |
---|---|
Version | 3 |
Publisher | Free Software Foundation, Inc. |
Published | June 29, 2007 |
DFSG compatible | Yes |
Free software | Yes |
OSI approved | Yes |
GPL compatible | Yes |
Copyleft | Yes |
Linking from code with a different license | Yes |
The GNU Lesser General Public License (formerly the GNU Library General Public License) or LGPL is a free software license published by the Free Software Foundation (FSF). It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License. The GNU Library General Public License (as the LGPL was originally named) was published in 1991, and adopted the version number 2 for parity with GPL version 2. The LGPL was revised in minor ways in the 2.1 point release, published in 1999, when it was renamed the GNU Lesser General Public License to reflect the FSF's position that not all libraries should use it. Version 3 of the LGPL was published in 2007 as a list of additional permissions applied to GPL version 3.
The LGPL places copyleft restrictions on the program governed under it but does not apply these restrictions to other software that merely link with the program. There are, however, certain other restrictions on this software.
The LGPL is primarily used for software libraries, although it is also used by some stand-alone applications, most notably Mozilla and OpenOffice.org.
Contents |
The main difference between the GPL and the LGPL is that the latter allows the work to be linked with (in the case of a library, 'used by') a non-(L)GPLed program, regardless of whether it is free software or proprietary software.[1] The non-(L)GPLed program can then be distributed under any terms if it is not a derivative work. If it is a derivative work, then the program's terms must allow for "modification for the customer's own use and reverse engineering for debugging such modifications." Whether a work that uses an LGPL program is a derivative work or not is a legal issue. A standalone executable that dynamically links to a library, through a .so, .dll, or similar medium, is generally accepted as not being a derivative work (as defined by the LGPL). It would fall under the definition of a "work that uses the Library". The following is an excerpt of paragraph 5 of the LGPL version 2.1:
Essentially, if it is a "work that uses the library", then it must be possible for the software to be linked with a newer version of the LGPL-covered program. The most commonly used method for doing so is to use "a suitable shared library mechanism for linking". Alternatively, a statically linked library is allowed if either source code or linkable object files are provided.
One feature of the LGPL is that one can convert any LGPLed piece of software into a GPLed piece of software (section 3 of the license). This feature is useful for direct reuse of LGPLed code in GPLed libraries and applications, or if one wants to create a version of the code that cannot be used in proprietary software products.
The former name of "GNU Library General Public License" gave some people the impression that the FSF endorsed that libraries use the LGPL and that programs use the GPL. In February 1999, Richard Stallman wrote the essay Why you shouldn't use the Lesser GPL for your next library explaining that the LGPL has not been deprecated, but that one should not necessarily use the LGPL for all libraries:
Indeed, Stallman and the FSF sometimes advocate licenses even less restrictive than the LGPL as a matter of strategy. A prominent example was Stallman's endorsement of the use of a BSD-style license by the Vorbis project for use in its libraries.[2]
The license uses terminology which is mainly intended for applications written in the C programming language or its family. Franz Inc. published its own preamble to the license to clarify terminology in the Lisp context. LGPL with this preamble is sometimes referred as LLGPL.[3]
In addition, Ada has a special feature, generics, that may use the MGPL license.
Some concern has risen about the suitability of object-oriented classes in LGPL'd software being inherited by non-(L)GPL code. Clarification is given on the official GNU website:
|